package com.cms.dao.enums.converter;

import com.cms.core.foundation.BaseEnum;
import com.cms.dao.enums.UserStatusEnum;

import java.util.Enumeration;
import java.util.Objects;

/**
 * @author laolang
 * @version 1.0.0
 * @ClassName EnumConverter
 */
public class EnumConverter {

    /**
     * 用于将dto  中的status转换成integer类型
     * @param Enumeration
     * @param <E>
     * @return
     */
    public static <E extends BaseEnum> Integer toInteger(E Enumeration){
         return (Enumeration !=null) ? Enumeration.getOrdinal() : null;
    }

    /**
     * 用于将entity 中int 类型转换为userStatusEnum类型
     * @param status
     * @return
     */

    public static UserStatusEnum toUserStatusEnum(int status){

        return (UserStatusEnum)converter(UserStatusEnum.values(),status);
    }

    /**
     * 通用枚举转换器， 统一循环枚举比对
     *@param enums
     * @param status
     * @return
     */
    public static BaseEnum converter(BaseEnum[] enums,int status){
        for(BaseEnum enumration:enums){
            if(Objects.equals(enumration.getOrdinal(), status)){
                return enumration;
            }
        }
        return null;

    }


}
